OpenFMB Fields Used by the Oneline
This document details which OpenFMB fields from which Equipment types are integrated into the One-Line UI application.
Overview
The One-Line UI integrates with OpenFMB (Open Field Message Bus) profiles through NATS messaging to display real-time readings, statuses, and controls for electrical grid equipment. All equipment communicates using standardized OpenFMB profiles transmitted as Protocol Buffer messages over NATS.
Equipment Types Supported
The following equipment types are supported in the One-Line UI:
- Breaker
- Capacitor/CapBank
- ESS/Battery
- EVSE/EV Charger
- Generation
- Load
- Meter
- Recloser
- Regulator
- Solar/PV
- Switch
OpenFMB Profile Types
Each equipment type uses three profile categories:
- Reading Profiles - Telemetry and measurement data
- Status Profiles - Equipment state and operational status
- Control Profiles - Command and control operations
Reading Fields (Measurements/Telemetry)
All equipment types extract measurement data through the readingMMXU field using standardized JSONPath queries.
Reading Values Displayed
| Reading Type | Description | Units | Display Conversion | Phases |
|---|---|---|---|---|
| PhV | Phase To Ground Voltage | Volts | ÷ 1000 = kV | A, B, C |
| PPV | Phase-to-Phase Voltage | Volts | ÷ 1000 = kV | AB, BC, CA |
| W | Real Power | Watts | ÷ 1000 = kW | A, B, C |
| VAr | Reactive Power | Volt-Ampere Reactive | ÷ 1000 = kVAr | A, B, C |
| VA | Apparent Power | Volt-Ampere | ÷ 1000 = kVA | A, B, C |
| PF | Power Factor | Dimensionless | 0.0 - 1.0 | A, B, C |
| A | Current (shown for EV's) | Amperes | A | A, B, C |
Equipment Reading Profile Paths
| Equipment Type | JSONPath for Readings | Profile Name |
|---|---|---|
| Breaker | $.breakerReading..readingMMXU | BreakerReadingProfile |
| Capacitor | $..readingMMXU | CapBankReadingProfile |
| ESS/Battery | $..readingMMXU | ESSReadingProfile |
| EVSE/EV Charger | $..readingMMXU | EVSEReadingProfile |
| Generation | $..readingMMXU | GenerationReadingProfile |
| Load | $..readingMMXU | LoadReadingProfile |
| Meter | $..readingMMXU | MeterReadingProfile |
| Recloser | $..readingMMXU | RecloserReadingProfile |
| Regulator | $..readingMMXU | RegulatorReadingProfile |
| Solar/PV | $..readingMMXU | SolarReadingProfile |
| Switch | $..readingMMXU | SwitchReadingProfile |
Status Fields (Device Status)
Status fields are equipment-specific and extracted from OpenFMB Status Profiles. The UI displays these as status chips or indicators.
Status Fields by Equipment Type
| Equipment Type | Status JSONPath | Possible Values | Display Format | Profile Name |
|---|---|---|---|---|
| Breaker | $.breakerStatus..Pos.phs3.stVal | 0, 1 | "Closed", "Open" | BreakerStatusProfile |
| Switch | $.switchStatus..stVal | 0, 1 | "Closed", "Open" | SwitchStatusProfile |
| Recloser | $.recloserStatus..Pos.phs3.stVal | 0, 1 | "Closed", "Open" | RecloserStatusProfile |
| Capacitor | $.capBankStatus..Pos.phs3.stVal | 0, 1 | "Closed", "Open" | CapBankStatusProfile |
| Load | $.loadStatus..state.value | StateKind enum | "On", "Off" + controllability | LoadStatusProfile |
| Generation | $.generationStatus..value | StateKind enum | "On", "Off", "Standby" | GenerationStatusProfile |
| Solar/PV | $.solarStatus..value | StateKind enum | "On", "Off", "Standby" | SolarStatusProfile |
| Regulator | $.regulatorStatus..phs3.stVal | number | Step position (numeric) | RegulatorStatusProfile |
| ESS/Battery | $.essStatus.essStatusZBAT | Multiple fields | See ESS Status Fields below | ESSStatusProfile |
| EVSE/Charger | $.evseStatus.eventAndStatusDESE | Multiple fields | See EVSE Status Fields below | EVSEStatusProfile |
ESS/Battery Status Fields
Battery/ESS equipment displays multiple status fields extracted from essStatusZBAT:
| Field Name | Description | Display Format |
|---|---|---|
| state | Operational state | "On", "Off", "Standby" |
| SoC | State of Charge | Percentage (0-100) |
| Grid Mode | Grid connection mode | "Grid Following", "Grid Forming" |
| Power values | Active/Reactive power | kW, kVAr |
| Voltage values | Voltage measurements | kV |
EVSE/EV Charger Status Fields
EVSE equipment displays multiple status fields extracted from eventAndStatusDESE:
| OpenFMB Field Path | Friendly Label | Description | Display Format |
|---|---|---|---|
eventAndStatusDESE[].PointStatus.state.value | Charging State Kind | Current charging state | "Idle", "Charging", "EVConnected", "SuspendedEV", "SuspendedEVSE" |
eventAndStatusDESE[].PointStatus.limitWOperation.maxLimParameter.modEna | Max Limit W Enabled | Max power limit flag | "true", "false" |
eventAndStatusDESE[].PointStatus.limitWOperation.wMaxSptVal | Limit W Operation Setpoint | Max power limit value | kW (value ÷ 1000) |
eventAndStatusDESE[].eventAndStatusDEAO.eventAndStatusDEEV.Soc.mag | DEAO.DEEV.Soc | State of Charge | Percentage (0-100) |
eventAndStatusDESE[].eventAndStatusDEDO.eventAndStatusDEEV.Soc.mag | DEDO.DEEV.Soc | State of Charge | Percentage (0-100) |
Control Fields
Control fields allow operators to send commands to equipment. Each equipment type has specific control profiles and fields.
Breaker/Switch/Recloser/Capacitor Controls
| Equipment Type | Control Field Path | Value Type | Control Action | Profile Name |
|---|---|---|---|---|
| Breaker | breakerDiscreteControl.breakerDiscreteControlXCBR.discreteControlXCBR.Pos.phs3.ctlVal | boolean | 1 = Open, 0 = Closed | BreakerDiscreteControlProfile |
| Switch | switchDiscreteControl.switchDiscreteControlXSWI.Pos.phs3.ctlVal | boolean | 1 = Open, 0 = Closed | SwitchDiscreteControlProfile |
| Recloser | recloserDiscreteControl.recloserDiscreteControlRCLO.Pos.phs3.ctlVal | boolean | 1 = Open, 0 = Closed | RecloserDiscreteControlProfile |
| Capacitor | capBankControl.capBankDiscreteControlYPSH.control.Pos.phs3.ctlVal | boolean | 1 = Open, 0 = Closed | CapBankDiscreteControlProfile |
UI Control: Open/Close buttons
Load Controls
| Control Field | Full Path | Value Type | Display Unit | Profile Name |
|---|---|---|---|---|
| W (Real Power) | loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_mag | number | kW | LoadControlProfile |
| VAr (Reactive Power) | loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_mag | number | kVAr | LoadControlProfile |
| PF (Power Factor) | loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_PF_net_mag | number | 0.0 - 1.0 | LoadControlProfile |
UI Control: Sliders for W, VAr, PF setpoints
Regulator/Transformer Step Controls
| Control Field | Full Path | Value Type | Control Action | Profile Name |
|---|---|---|---|---|
| Raise (Step Up) | regulatorControl.regulatorDiscreteControlATCC.TapOpR.phs3.ctlVal | boolean | true = Raise step | RegulatorDiscreteControlProfile |
| Lower (Step Down) | regulatorControl.regulatorDiscreteControlATCC.TapOpL.phs3.ctlVal | boolean | true = Lower step | RegulatorDiscreteControlProfile |
UI Control: Raise/Lower step buttons
Battery/ESS Controls
| Control Field | Full Path | Value Type | Possible Values | Profile Name |
|---|---|---|---|---|
| State Control | essControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.state.value | enum | StateKind_on, StateKind_off, StateKind_standby | ESSControlProfile |
| Grid Mode Control | essControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.mode.setVal | enum | GridConnectModeKind_VSI_PQ (Grid Following), GridConnectModeKind_VSI_ISO (Grid Forming) | ESSControlProfile |
| Power (P) Control | essControl.essControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_mag | number | kW | ESSControlProfile |
| Reactive Power (Q) Control | essControl.essControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_mag | number | kVAr | ESSControlProfile |
| Reset Control | essControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.reset.ctlVal | boolean | true = Reset | ESSControlProfile |
UI Control: State dropdown, Grid Mode dropdown, P/Q text fields, Reset button
Solar/PV Controls
| Control Field | Full Path | Value Type | Possible Values | Profile Name |
|---|---|---|---|---|
| State Control | solarControl.solarControlFSCC.SolarControlScheduleFSCH.ValDCSG.crvPts[0].control.state.value | enum | StateKind_on, StateKind_off, StateKind_standby | SolarControlProfile |
| Power (P) Control | solarControl.solarControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_mag | number | kW | SolarControlProfile |
| Reactive Power (Q) Control | solarControl.solarControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_mag | number | kVAr | SolarControlProfile |
UI Control: State dropdown, P/Q text fields
EVSE/EV Charger Controls
| Control Field | Full Path | Value Type | Possible Values | Profile Name |
|---|---|---|---|---|
| Charging State Control | evseControl.deseControlScheduleFSCH.ValDCSG.crvPts[0].control.state.value | enum | ChargingStateKind_Idle, ChargingStateKind_Charging, ChargingStateKind_EVConnected, ChargingStateKind_SuspendedEV, ChargingStateKind_SuspendedEVSE | EVSEControlProfile |
| Power (P) Control | evseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_mag | number | kW | EVSEControlProfile |
| Maximum Power Limit Enabled | evseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.maxLimParameter.modEna | boolean | true/false | EVSEControlProfile |
| Maximum Power Limit Value | evseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.wMaxSptVal | number | kW | EVSEControlProfile |
| Minimum Power Limit Enabled | evseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.minLimParameter.modEna | boolean | true/false | EVSEControlProfile |
| Minimum Power Limit Value | evseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.wMinSptVal | number | kW | EVSEControlProfile |
| Reset Control | evseControl.controlFSCC.controlScheduleFSCH.ValDCSG.crvPts[0].control.reset.ctlVal | boolean | true = Reset | EVSEControlProfile |
UI Control: P Value field, P Value Max field, Min/Max Operation Limit checkboxes, Reset button
Generation Controls
| Control Field | Full Path | Value Type | Possible Values | Profile Name |
|---|---|---|---|---|
| State Control | generationControl.generationControlFSCC.GenerationControlScheduleFSCH.ValDCSG.crvPts[0].state.value | enum | StateKind_on, StateKind_off, StateKind_standby | GenerationControlProfile |
UI Control: State dropdown
NATS Message Subject Patterns
All OpenFMB messages follow a standardized NATS subject pattern:
openfmb.{module}.{ProfileType}.{mrid}
Subject Pattern Components
| Component | Description | Example |
|---|---|---|
| openfmb | Namespace prefix | openfmb |
| module | OpenFMB module name | breakermodule, loadmodule, essmodule |
| ProfileType | Message type | ReadingProfile, StatusProfile, ControlProfile |
| mrid | Unique equipment identifier | 550e8400-e29b-41d4-a716-446655440000 (UUID) |
Subject Pattern Examples by Profile Type
| Profile Type | Subject Pattern Example |
|---|---|
| Reading | openfmb.breakermodule.BreakerReadingProfile.550e8400-e29b-41d4-a716-446655440000 |
| Status | openfmb.loadmodule.LoadStatusProfile.550e8400-e29b-41d4-a716-446655440001 |
| Control | openfmb.essmodule.ESSControlProfile.550e8400-e29b-41d4-a716-446655440002 |
| Discrete Control | openfmb.breakermodule.BreakerDiscreteControlProfile.550e8400-e29b-41d4-a716-446655440000 |
Summary Tables
OpenFMB Equipment Profiles Used By Equipment
| Equipment Type | Reading Profile | Status Profile | Control Profile |
|---|---|---|---|
| Breaker | BreakerReadingProfile | BreakerStatusProfile | BreakerDiscreteControlProfile |
| Capacitor/CapBank | CapBankReadingProfile | CapBankStatusProfile | CapBankDiscreteControlProfile |
| ESS/Battery | ESSReadingProfile | ESSStatusProfile | ESSControlProfile |
| EVSE/EV Charger | EVSEReadingProfile | EVSEStatusProfile | EVSEControlProfile |
| Generation | GenerationReadingProfile | GenerationStatusProfile | GenerationControlProfile |
| Load | LoadReadingProfile | LoadStatusProfile | LoadControlProfile |
| Recloser | RecloserReadingProfile | RecloserStatusProfile | RecloserDiscreteControlProfile |
| Regulator | RegulatorReadingProfile | RegulatorStatusProfile | RegulatorDiscreteControlProfile |
| Solar/PV | SolarReadingProfile | SolarStatusProfile | SolarControlProfile |
| Switch | SwitchReadingProfile | SwitchStatusProfile | SwitchDiscreteControlProfile |
Additional Resources
- OpenFMB Official Documentation: https://openfmb.github.io/
- Protocol Buffers Documentation: https://protobuf.dev/
- NATS Messaging: All messages use NATS pub/sub
- Message Format: Protocol Buffer (binary) over network, converted to JSON in UI Code for UI processing